#include <string>
#include "Position.h"
#include "Direction.h"

using namespace std;

#pragma once
class Character
{
public:
	Character() : name(""), lastName(""), strength(0), agility(0), endurance(0), intelligence(0), wisdom(0), charisma(0), position() {}
	Character(string n, string l, int s, int a, int e, int i, int w, int c, Position p) :
		name(n), lastName(l), strength(s), agility(a), endurance(e), intelligence(i), wisdom(w), charisma(c), position(p) {}
	~Character();
	Character(const Character&);
	Character& operator=(const Character&);

	//accessors
	string getName() const { return name; }
	string getLastName() const { return lastName; }
	int getStrength() const { return strength; }
	int getAgility() const { return agility; }
	int getEndurance() const { return endurance; }
	int getIntelligence() const{ return intelligence; }
	int getWisdom() const { return wisdom; }
	int getCharisma() const { return charisma; }
	Position getPosition() const { return position; }

	//mutators
	void setName(string n) { name = n; }
	void setLastName(string l) { lastName = l; }
	void setStrength(int s) { strength = s; }
	void setAgility(int a) { agility = a; }
	void setEndurance(int e) { endurance = e; }
	void setIntelligence(int i) { intelligence = i; }
	void setWisdom(int w) { wisdom = w; }
	void setCharisma(int c) { charisma = c; }
	void setPosition(const Position& p) { position = p; }

	void move(float);
private:
	string name, lastName;
	int strength, agility, endurance, intelligence, wisdom, charisma;
	Position position;
};